const fs=require('fs');
const { resolve } = require('path');
const path=require('path');

//读取文件内容
// function getFileContent(filename,callback){
//     //获取数据文件的绝对路径
//     const fullFilename=path.resolve(__dirname,'data',filename);
//     //用fs模块读取数据文件
//     fs.readFile(fullFilename,(err,data)=>{
//         if(err){
//             console.error(err);
//             return;
//         }

//         callback(
//             JSON.parse(data.toString())
//         );

//     })
// }

// getFileContent('a.json',(aData)=>{
//     console.log('aData', aData);
//     getFileContent(aData.next,(bData)=>{
//         console.log('bData',bData);
//         getFileContent(bData.next,(cData)=>{
//             console.log('cData',cData);
//         })
//     })
// });
//输出如下
//aData { message: '这是a的内容', next: 'b.json' }
//bData { message: '这是b的内容', next: 'c.json' }
//cData { message: '这是c的内容', next: null }

function getFileContent(filename){
    const promise=new Promise((resolve,reject)=>{
        const fullFilename=path.resolve(__dirname,'data',filename);
    //用fs模块读取数据文件
        fs.readFile(fullFilename,(err,data)=>{
            if(err){
                console.error(err);
                return;
            }

            resolve(
                JSON.parse(data.toString())
             );
        }); 
    });
    return promise;
}
getFileContent('a.json').then((aData)=>{
    console.log('aData',aData);
    return getFileContent(aData.next);
}).then((bData)=>{
    console.log('bData',bData);
    return getFileContent(bData.next);
}).then((cData)=>{
    console.log('aData',cData);
})
/*输出如下
aData { message: '这是a的内容', next: 'b.json' }
bData { message: '这是b的内容', next: 'c.json' }
aData { message: '这是c的内容', next: null }
*/